package cn.bugstack.config;

import cn.bugstack.infrastructure.gateway.IGroupBuyMarketService;
import cn.bugstack.infrastructure.gateway.IWeixinApiService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;

// retrofit2 对接 http 接口方式，创建一个 微信 API 服务接口实例， 封装对微信 API 的 HTTP 请求
// gateway网关的配置来源
@Slf4j
@Configuration
public class Retrofit2Config {

    // 微信 API 的基础 URL，所有请求都会基于这个地址发起。
    @Value("${weixin.config.api-url}")
    private String WeiXinApiUrl;

    // 创建微信 API 服务接口
    @Bean
    public IWeixinApiService weixinApiService() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(WeiXinApiUrl)
                .addConverterFactory(JacksonConverterFactory.create()).build();
        return retrofit.create(IWeixinApiService.class);
    }


    // 注入拼团服务地址，与拼团对接
    @Value("${app.config.group-buy-market.api-url}")
    private String groupBuyMarketApiUrl;

    // 创建调用拼团服务的实例
    @Bean
    public IGroupBuyMarketService groupBuyMarketService() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(groupBuyMarketApiUrl)
                .addConverterFactory(JacksonConverterFactory.create()).build();

        return retrofit.create(IGroupBuyMarketService.class);
    }
}
